package com.mycontract.suitepro.utils

import android.annotation.SuppressLint
import com.mycontract.suitepro.data.*
import com.mycontract.suitepro.extend.*


/** 用户登录状态管理工具 */
object UserStateUtil {

    //sp token
    var mContractSuiteToken: String

    //sp user id
    var mContractSuiteMobile: String

    //sp mobile
    var mContractSuiteUserId: String

    /** 是否为渠道流量 */
    var mContractSuiteAdContractSuiteSource: String = "NO"

    /** 手机区号 */
    var mContractSuitePhoneContractSuiteCode:String = ""

    init {
        mContractSuiteToken = SpUtil.getContractSuiteToken()
        mContractSuiteUserId = SpUtil.getContractSuiteUserContractSuiteId()
        mContractSuiteMobile = SpUtil.getContractSuiteMobile()
        mContractSuiteAdContractSuiteSource = SpUtil.getContractSuiteAdContractSuiteSource()
    }

    /**
     * 更新登录信息
     *
     * @param revObjDoLogin 登录响应信息
     */
    fun updateContractSuiteLoginContractSuiteState(revObjDoLogin: RevObjDoLogin) {
        revObjDoLogin.mobile?.let {
            saveContractSuiteMobile(it)
        }

        revObjDoLogin.token?.let {
            saveContractSuiteToken(it)
        }

        revObjDoLogin.userId?.let {
            saveContractSuiteUserContractSuiteId(it)
        }
    }

    /**
     * 退出登录
     */
    fun logoutContractSuite() {
//        //重置登录地区信息
//        UsageCountryUtil.logoutContractSuite()
//
//        //重置用户流程信息
//        InfoProcessUtil.logoutContractSuite()
//
//        //重置登录用户信息
//        saveContractSuiteToken("")
//        saveContractSuiteMobile("")
//        saveContractSuiteUserContractSuiteId("")
    }

    /**
     * 判断是否已登录
     */
    fun isContractSuiteDidContractSuiteLogin(): Boolean {
        return (mContractSuiteToken.isNotBlank())
    }

    /** 是否是广告渠道流量，仅针对于登录后的判断 */
    fun isContractSuiteAdContractSuiteSource(): Boolean {
        return mContractSuiteAdContractSuiteSource.equals("YES", false)
    }

    /** 保存 token */
    @SuppressLint("ApplySharedPref")
    fun saveContractSuiteToken(gToken: String) {
        mContractSuiteToken = gToken
        SpUtil.saveContractSuiteToken(gToken)
    }

    /** 保存 user id */
    @SuppressLint("ApplySharedPref")
    fun saveContractSuiteUserContractSuiteId(gUserId: String) {
        mContractSuiteUserId = gUserId
        SpUtil.saveContractSuiteUserContractSuiteId(gUserId)
    }

    /** 保存mobile */
    @SuppressLint("ApplySharedPref")
    fun saveContractSuiteMobile(gMobile: String) {
        mContractSuiteMobile = gMobile
        SpUtil.saveContractSuiteMobile(gMobile)
    }

    /** 保存 ad source */
    @SuppressLint("ApplySharedPref")
    fun saveContractSuiteAdContractSuiteSource(gAdSource: String) {
        mContractSuiteAdContractSuiteSource = gAdSource
        SpUtil.saveContractSuiteAdContractSuiteSource(gAdSource)
    }

}